package com.cx.base.day06_array;

//import lombok.extern.slf4j.Slf4j;

import lombok.extern.slf4j.Slf4j;

import java.util.*;

/**
 * @Author: robert.song
 * @Date: Created in 2022/5/8
 */
@Slf4j
public class Array {
    public static void main(String[] args) {

        System.out.println("a:"+25%6);
        System.out.println("a:"+24%6);
        System.out.println("a:"+1%6);
        List<List<ArrayList>> threadList = new ArrayList<>();
        System.out.println("is null?"+(null == threadList.get(0)? true:false));


        int[][] is = new int[10][];
        for (int j = 0; j < 10; j++) {
//        一维数组存储的是二维数组引用
            is[j] = new int[10];
            for (int i = 0; i < 10; i++) {
                is[j][i] = i;
//                log.debug(String.valueOf(is[j][i]));
            }
        }
        int[][][][] is1 = new int[17][][][];
        ArrayList list = new ArrayList();
        list.add("1");
        list.add("2");
        list.add("3");
        log.debug(String.valueOf(list.size()));
        Iterator<String> iterable = list.iterator();
        while (iterable.hasNext()){
            String ele = iterable.next(); //必须执行next()方法指定元素，要不然删除报错
            iterable.remove();
        }
        log.debug(String.valueOf(list.size()));
        list.add("1");
        list.add("2");
        list.add("3");
        log.debug(String.valueOf(list.size()));
        for(int i=2;i>=0;i--){
            list.remove(i);
        }
        log.debug(String.valueOf(list.size()));


        /**
         * 正向删除测试案例
         */
        list.clear();
        list.add("1");
        list.add("2");
        list.add("3");
        log.debug(String.valueOf(list.size()));
        for(int i=0;i<list.size();i++){
            // 案例一：失败，元素删除后数组会重新排序，即当前索引下会补充进来新的数据，但是索引已经往下顺延，导致数组删除不净
            list.remove(i);
        }
        log.debug(String.valueOf(list.size()));
        log.debug(String.valueOf(list.get(0)));

        list.clear();
        list.add("1");
        list.add("2");
        list.add("3");
        for(int i=0;i<list.size();i++){
            // 案例二：失败，元素删除后数组会重新定义size，导致数组删除不净
            list.remove(0);
        }
        log.debug(String.valueOf(list.size()));
        log.debug(String.valueOf(list.get(0)));

        list.clear();
        list.add("1");
        list.add("2");
        list.add("3");
        for(int i=0;i<3;i++){   // 写死size,删除索引写死0
            // 案例三：成功！！！！！
            list.remove(0);
        }
        log.debug(String.valueOf(list.size()));
        log.debug(String.valueOf(list.get(0)));

        HashMap<String,String> hashMap = new HashMap<>();
        Set<Map.Entry<String,String>> set = hashMap.entrySet();

    }
}
